#pragma once
#include "Render\Buffer.h"
namespace Engine 
{
	class GLVertexBuffer : public VertexBuffer
	{
	public:
		virtual ~GLVertexBuffer();
		virtual void Bind() const override;
		virtual void UnBind() const override;
		GLVertexBuffer(float* vertics, UINT32 size);

		virtual const BufferLayout& GetLayout() const override { return m_Layout; };
		virtual void SetLayout(const BufferLayout& layout) override { m_Layout = layout; };
	private:
		unsigned int m_Handle;
		BufferLayout m_Layout;
	};

	class GLIndexBuffer : public IndexBuffer
	{
	public:
		virtual ~GLIndexBuffer();
		virtual void Bind() const;
		virtual void UnBind() const;
		GLIndexBuffer(UINT32* indices, UINT32 count);
		virtual UINT32 GetCount() const { return m_Count; }
	private:
		UINT32 m_Handle;
		UINT32 m_Count;
	};
}